Programmable controllers are a common type of industrial computer for operating a wide variety of manufacturing equipment, such as assembly lines and machine tools, in accordance with a stored program. The program comprises a series of process control instructions which are read out and executed to examine the state of selected sensing devices on the controlled equipment, and to energize or deenergize selected operating devices contingent upon the state of one or more of the examined sensing devices.
The state of many sensing and operating devices can be represented by a single bit of data which is manipulated by the control program instructions. Other devices, such as position sensors, provide multiple bits of data representing a condition of the equipment being controlled. For these latter devices, instructions are provided to manipulate bytes and words of data representing the state of the sensing and operating devices. Additional program instructions perform arithmetic operations, timing and counting functions, and complex statistical reporting operations. Such instructions have become quite standardized in the industry and are directly associated with the elements of a ladder logic diagram which is easily understood by process control engineers. Program panels such as those described in U.S. Pat. Nos. 3,808,612; 3,813,649 and 4,070,702 have been developed to assist the user in developing and editing ladder logic control programs comprised of such programmable controller instructions.
An assembly line typically is controlled by a number of programmable controllers. In which case, serial communication networks also interconnect the programmable controllers allowing them to exchange data regarding the operation of the assembly line. In addition, a central computer for the factory often is coupled to the network to receive assembly line status information from the programmable controllers and issue commands to them. In such installations, the programmable controllers periodically forward productivity information to the central computer. For example, at the end of every work shift in the factory the central computer gathers the productivity information from the programmable controllers for each assembly line and produces a production report for that work shift.
In order for a given programmable controller to send information at a particular time or at specified intervals, communication message commands heretofore had to be placed in the control program that was executed to control the associated section of the assembly line. For example, rungs had to be added to a ladder logic program to initialize a timer for the interval between message transmissions and to transmit the message when the timer interval elapses. The execution of the message handling rung took processing time away from the primary machine control function of the programmable controller. In some applications this could adversely affect the control function, especially when time critical processes were being controlled.
A complex process often is defined by a plurality of ladder logic control programs that are executed at different times in a sequence specified by a sequential function chart that is interpreted by the programmable controller. U.S. Pat. No. 4,858,101 describes the use of a sequential function chart. This operation further complicates periodic message transmission, since a different ladder logic program than the one with the message rung may be executing when it is time to send the message. In fact, it may be some time thereafter before the sequential function chart cycles to a point at which the particular ladder logic program with the message control rung is executed. This not only delays the transmission of the message, the message data that ultimately is sent represents the status of the programmable controller at that latter time rather than when the message should have been sent. Thus if a number of programmable controllers are to provide status reports to the central computer at the same instant in time, the delay in executing the communication instruction can result in reports from different programmable controller representing the state of the manufacturing equipment at different points in time.